package com.wlxk.message.core.manager;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wlxk.base.common.constant.RowStatusEnum;
import com.wlxk.base.mybatisplus.manager.SimpleManager;
import com.wlxk.core.tool.WlEmptyUtil;
import org.springframework.stereotype.Component;
import com.wlxk.message.core.entity.MailTemplateDO;
import com.wlxk.message.client.query.MailTemplateQuery;
import com.wlxk.message.core.dao.MailTemplateDAO;


/**
 * @author ：wlxk
 * @since  ：2022年02月17日
 */
@Component
public class MailTemplateManager extends SimpleManager<MailTemplateDAO, MailTemplateDO, MailTemplateQuery> {


    /**
     * 查询条件转换
     *
     * @param query 入参
     * @return 结果
     */
    @Override
    public Wrapper<MailTemplateDO> getQueryWrapper(MailTemplateQuery query) {
        LambdaQueryWrapper<MailTemplateDO> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(MailTemplateDO::getRowStatus, RowStatusEnum.NORMAL.code);
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getId()), MailTemplateDO::getId, query.getId());
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getCreator()), MailTemplateDO::getCreator, query.getCreator());
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getOperator()), MailTemplateDO::getOperator, query.getOperator());
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getTemplateCode()), MailTemplateDO::getTemplateCode, query.getTemplateCode());
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getTemplateName()), MailTemplateDO::getTemplateName, query.getTemplateName());
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getSubject()), MailTemplateDO::getSubject, query.getSubject());
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getContent()), MailTemplateDO::getContent, query.getContent());
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getIsHtml()), MailTemplateDO::getIsHtml, query.getIsHtml());
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getRecipients()), MailTemplateDO::getRecipients, query.getRecipients());
        wrapper.eq(WlEmptyUtil.isNotEmpty(query.getCcRecipients()), MailTemplateDO::getCcRecipients, query.getCcRecipients());
        wrapper.orderByDesc(MailTemplateDO::getId);
        return wrapper;
    }
}
